package com.framewiki.gpt.dto.request;

import com.alibaba.fastjson.annotation.JSONField;
import com.framewiki.gpt.dto.response.ChatMessagesVo;
import lombok.Builder;
import lombok.Data;

import java.math.BigDecimal;
import java.util.List;

/**
 * @ProjectName: framewiki-gpt
 * @Package: com.framewiki.gpt.dto
 * @ClassName: ChatCompletionRequestDto
 * @Description: 请求实体
 * @Author: xiaLin
 * @Date: 2023/6/10 22:27
 * @Version: 1.0
 */
@Data
@Builder
public class ChatCompletionRequestVo {

  /**
   * 模型
   * gpt-4
   * gpt-4-0314
   * gpt-4-32k
   * gpt-4-32k-0314
   * gpt-3.5-turbo
   * gpt-3.5-turbo-0301
   */
  private String model;

  /**
   * 温度，参数从0-2，越低表示越精准，越高表示越广发，回答的内容重复率越低
   */
  private BigDecimal temperature;

  /**
   * 消息
   */
  private List<ChatMessagesVo> messages;

  /**
   * 回复条数，一次对话回复的条数
   */
  private Integer n;

  /**
   * 是否流式处理，就像ChatGPT一样的处理方式，会增量的发送信息。
   */
  private Boolean stream;

  /**
   * 状态
   */
  private List<String> stop;

  /**
   * 生成的答案允许的最大token数
   */
  private Integer maxTokens;

  /**
   * 对话用户
   */
  private String user;
}
